package com.joolun.system.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.joolun.common.annotation.Excel;
import com.joolun.common.core.domain.BaseEntity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.List;

/**
 * 投放计划对象 scrm_delivery_plan
 * 
 * @author joolun
 * @date 2025-03-10
 */
@Data
public class ScrmDeliveryPlan extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    private Long id;

    /** 渠道计划名称 */
    @Excel(name = "渠道计划名称")
    private String planName;

    /** 渠道用户ID */
    @Excel(name = "渠道用户ID")
    private String sysUserId;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private String channelId;

    /** 投放课程id */
    @Excel(name = "投放课程id")
    private Long courseId;

    /** 投放模板id */
    @Excel(name = "投放模板id")
    private Long templateId;

    /** 微信外流程类型 */
    @Excel(name = "微信外流程类型")
    private Integer processType;

    /** 链接数量 */
    @Excel(name = "链接数量")
    private Integer linkCount;

    /** 流量分类 */
    @Excel(name = "流量分类")
    private String flowType;

    /** 跳转类型 */
    @Excel(name = "跳转类型")
    private String jumpType;

    /** 是否强制跳客服 */
    @Excel(name = "是否强制跳客服")
    private String jumpCustomer;

    /** 所属企业 */
    @Excel(name = "所属企业")
    private String extCorpId;

    /** '状态，1：是；2：否' */
    @Excel(name = "'状态，1：是；2：否'")
    private Integer status;

    /** 渠道链接 */
    @TableField(exist = false)
    private List<ScrmPlanLink> links;


    /** 模板类型 */
    @TableField(exist = false)
    private Long landStyle;

    /** 主体id */
    @Excel(name = "主体id")
    private String corpId;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setPlanName(String planName) 
    {
        this.planName = planName;
    }

    public String getPlanName() 
    {
        return planName;
    }
    public void setSysUserId(String sysUserId) 
    {
        this.sysUserId = sysUserId;
    }

    public String getSysUserId() 
    {
        return sysUserId;
    }
    public void setChannelId(String channelId) 
    {
        this.channelId = channelId;
    }

    public String getChannelId() 
    {
        return channelId;
    }
    public void setFlowType(String flowType)
    {
        this.flowType = flowType;
    }

    public String getFlowType() 
    {
        return flowType;
    }
    public void setJumpType(String jumpType) 
    {
        this.jumpType = jumpType;
    }

    public String getJumpType() 
    {
        return jumpType;
    }
    public void setJumpCustomer(String jumpCustomer) 
    {
        this.jumpCustomer = jumpCustomer;
    }

    public String getJumpCustomer() 
    {
        return jumpCustomer;
    }
    public void setExtCorpId(String extCorpId) 
    {
        this.extCorpId = extCorpId;
    }

    public String getExtCorpId() 
    {
        return extCorpId;
    }
    public void setStatus(Integer status) 
    {
        this.status = status;
    }

    public Integer getStatus() 
    {
        return status;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("planName", getPlanName())
            .append("sysUserId", getSysUserId())
            .append("channelId", getChannelId())
            .append("courseId", getCourseId())
            .append("templateId", getTemplateId())
            .append("processType", getProcessType())
            .append("linkCount", getLinkCount())
            .append("flowType", getFlowType())
            .append("jumpType", getJumpType())
            .append("jumpCustomer", getJumpCustomer())
            .append("extCorpId", getExtCorpId())
            .append("status", getStatus())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
